iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
JavaScript

我推的TypeScript 操作大全系列 第 6

我推Day06 - 60秒搞懂TypeScript DRY 原則,成為效率之神

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20240920/201244628vSHyudirN.jpg

前言:別再當冗餘程式碼的奴隸了,好用的編程心法

程式寫久了,總是覺得自己在重複造輪子?是不是受夠了維護又臭又長的程式碼?
讓我們一起看看 DRY 原則,拯救你的編碼日常吧!


TypeScript 的 DRY(Don’t Repeat Yourself)原則

DRY 原則,即 “Don’t Repeat Yourself” 的縮寫,中文翻譯為「不要重複自己」。
這是軟體開發中非常重要的設計原則之一,旨在減少程式碼中的冗餘,提升可維護性和可讀性。

DRY 原則的核心思想是避免在多個地方重複相同的邏輯或程式碼,從而降低錯誤發生的機會和維護的負擔。

DRY 原則的定義

DRY 原則主張在程式設計中,任何知識或邏輯都應該在唯一的、不可重複的地方定義。
這意味著不論是程式碼、資料結構、設定值、邏輯運算,甚至是文檔說明,都應避免重複。

在 TypeScript 中,DRY 原則被運用於以下幾個方面:

  1. 型別定義:利用 TypeScript 的強類型系統,我們可以使用 typeinterfaceenum 等方式來定義資料結構,並在多個地方重複使用,避免在程式中多次定義相似的型別。

    例如:

    // 定義共用的型別
    type User = {
      name: string;
      age: number;
    };
    
    // 在不同的函式中使用該型別
    function printUser(user: User) {
      console.log(`User: ${user.name}, Age: ${user.age}`);
    }
    
    function saveUser(user: User) {
      // save logic
    }
    
  2. 抽象和重用邏輯:透過將重複的邏輯抽取為獨立的函式或模組,使得程式碼更具重用性。

例如,處理表單驗證的邏輯、API 請求處理等,都應抽象成共用的功能模組。

例如:

// 抽取重複的驗證邏輯
function isValidEmail(email: string): boolean {
  return /\S+@\S+\.\S+/.test(email);
}

// 在不同的地方重複使用
if (isValidEmail(user.email)) {
  // ...
}
  1. 使用 typeof 和泛型:TypeScript 提供的 typeof 運算子可以從現有的物件中抽取型別,確保程式中的型別定義和物件保持一致。這樣的做法減少了手動重複定義型別的需求。泛型則允許開發者撰寫更加抽象和可重用的函式或類別,避免多次撰寫相似的程式碼。

    例如:

    const defaultUser = {
      name: 'John Doe',
      age: 30
    };
    
    // 利用 typeof 抽取型別
    type User = typeof defaultUser;
    
    function greet(user: User) {
      console.log(`Hello, ${user.name}`);
    }
    

DRY 原則的好處

簡單來說,就是「不重複程式碼」,這帶來了以下幾個顯著的優勢:

  • 減少錯誤:重複的程式碼增加了出錯的風險,因為如果需要修改其中的一部分,很容易遺漏其他相似的部分。遵循 DRY 原則,變更僅需在單一位置進行,減少了錯誤發生的機會。

  • 提高可維護性:當邏輯僅在一個地方定義時,程式的維護變得更為簡單。開發者不必在多個地方進行修正或調整,節省了維護時間。

  • 提升可讀性:當程式碼結構清晰、無冗餘時,其他開發者更容易理解和接手專案。

關鍵心法結語

  • 檢查可重用的模組:在撰寫新功能之前,先檢查是否已有相似的模組或函式可重用,避免重複造輪子。

  • 優先抽象重複邏輯:遇到重複的程式段落,優先考慮將其抽象為獨立的函式或模組,使邏輯更具重用性。

  • 避免輕微差異的重複程式碼:當遇到兩段幾乎相同但僅有細微差異的程式碼時,思考是否能將變化的部分參數化,以合併成一個通用的函式。

  • 善用泛型與型別:使用 TypeScript 的泛型、型別推論和 typeof 等工具,減少重複定義相似型別的需求。

  • 定期重構:定期檢查並重構程式碼,尋找可以進一步簡化或合併的地方,保持程式碼乾淨和一致。

  • 保持簡單:在進行抽象時,保持邏輯簡單且易於理解,避免因過度抽象而導致程式碼複雜化。

  • 優化命名與文件管理:使用清晰的命名規則和良好的文件結構,有助於維持模組的可重用性和易讀性。

  • 持續學習:持續學習和應用新的設計模式、重構技術,提升寫出 DRY 程式碼的能力。

最後結尾

希望這篇文章讓你對 TypeScript 的 DRY 原則有了更多了解!
別再重複寫那些繁瑣的程式碼啦,讓我們一起做個更聰明的開發者吧!

💡🚀 記得,編程可以很有趣,只要方法對了,提升效率也不再是難事!Happy Coding!✨👩‍💻👨‍💻


上一篇
我推Day05 - 掌握 TypeScript 的 Object Type
下一篇
我推Day07 - 驚!TypeScript 搜尋功能踩雷全紀錄:5 大常見錯誤你一定中過!
系列文
我推的TypeScript 操作大全15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言